package br.com.jk.cont.planocontas;

import br.com.jk.util.pesquisa.Pesquisa.Opcao;
import java.util.List;

/**
 * @author camilo
 */
public interface PlanoContasDao {

  public static final String NAME_TABLE = "plano_contas";
  public static final String NAME_SCHEMA = "contabil";
  public static final String NAME_COLUMN_ID = "id";
  public static final String NAME_COLUMN_COD = "cod";
  public static final String NAME_COLUMN_COD_PAI = "cod_pai";
  public static final String NAME_COLUMN_DESCRICAO = "descricao";
  public static final String NAME_COLUMN_NIVEL = "nivel";
  public static final String NAME_COLUMN_OBSERVACAO = "observacao";
  public static final String NAME_COLUMN_NATUREZA = "natureza";
  public static final String NAME_COLUMN_TITULO = "tit";
  public static final String NAME_COLUMN_CONTABANCO = "is_cb";
  public static final String NAME_SEQUENCE = "plano_contas_id_seq";
  public static final String NAME_INDEX_ID = "in_plano_contas_id";
  public static final String NAME_UK_PLANO_CONTAS_COD = "uk_plano_contas_cod";
  public static final String NATUREZA_ENTRADA = "E";
  public static final String NATUREZA_SAIDA = "S";

  public void salvar(PlanoContas plano);

  public void excluir(PlanoContas plano);

  public PlanoContas carregar(int id);

  public PlanoContas carregarCod(String cod);

  public List<PlanoContas> listar();

  public List<PlanoContas> pesquisaPadrao(String property, String criterio, Opcao opcao);

  public List<PlanoContas> pesquisaPadrao(String property, int criterio, Opcao opcao);
}
